Method and apparatus for unified storage of data for storage area network systems and network attached storage systems

ABSTRACT

A unified data storage apparatus for storing data for both storage area network and network attached storage system architectures on the same storage medium. The storage medium ( 50 ) is partitioned for storage of logical disk volumes and files ( 58 ), and is further partitioned for storage of pointers to logical disk volumes ( 59 ).

BACKGROUND OF THE INVENTION

1. Technical Field of the Invention

This invention is related to a method and apparatus for storing dataused by Storage Area Networks and Network Attached Storage systems onthe same storage medium. In particular, the storage of data for thesetwo network architectures reduces the number of storage assets requiredfor a network. The invention is embodied in a method for storing datafrom both Storage Area Network and Network Attached Storagearchitectures on the same storage medium, and a data storage apparatusfor storing data received from both Storage Area Network and NetworkAttached Storage architectures. The invention is also embodied in acomputer system that stores data received from both Storage Area Networkand Network Attached Storage architectures on the same storage medium,and a computer program product that stores data from both Storage AreaNetwork and Network Attached Storage architectures.

2. Description of the Related Art

There will now be provided a discussion of various topics to provide aproper foundation for understanding the invention.

In order for a client device to be able to access to multiple serversrunning different operating systems, either the client device supportsthe file sharing protocol of each operating system or the serversupports the file sharing protocol of each client device. Software thatadds this capability is very common and allows interoperability betweenWindows®, Macintosh®, NetWare® and UNIX platforms. TABLE 1 lists severalcommon operating systems and their transport and file sharing protocolsfor networking environments. TABLE 1 Operating Transport File SharingSystem Protocol Protocol DOS NETBIOS SMB WINDOWS NETBEUI SMB, CIFSNETWARE IPX NCP MACINTOSH APPLETALK AFP UNIX TCP/IP NFS

A Storage Area Network (SAN) system is a back-end network that usesperipheral channels to connect storage devices. Typically, theperipheral channels are Small Computer System Interface (SCSI), SerialStorage Architecture (SSA), Enterprise Systems Connection (ESCON) andFibre Channel. SAN devices are usually dedicated high-bandwidth systemsthat handle traffic between servers and storage assets. Data objects ona SAN system are sets of logical disk volumes above which higher levelobject semantics can be implemented on specific application servers.

Both centralized SANs and distributed SANs are currently used. Acentralized SAN ties multiple hosts into a single storage system. Thestorage system is usually a Redundant Array of Independent Disks (RAID)device with large amounts of cache and redundant power supplies.Typically, this centralized storage architecture ties a server clustertogether for fault tolerance (i.e., if one server fails, another servercan take over). Centralized SAN also provides simplified sharing of databetween multiple servers, and further provides multiple servers thecapability to perform the work on the shared data.

Referring to FIG. 1, a centralized SAN system is illustrated. Theapplications servers 1,2 and the mainframe computer 6 are connected tothe disk array 4 via several peripheral channels 8-10. As describedabove, the peripheral channels may use SCSI, SSA, ESCON or Fibre Channelprotocols to transfer data between the disk array 4 and the applicationsservers 1,2.

A distributed SAN system connects multiple hosts with multiple storagesystems. Referring to FIG. 2, a distributed SAN system is illustrated.Several applications servers 1-3 are connected to a switch 7, which isalso connected to several disk arrays 4,5. The switch 7 handles thetransfer of data between the multiple disk arrays 4,5 and theapplications servers 1-3 via the peripheral channels 8-12. Of course,SAN systems are not limited to only using disk arrays for data storage.For example, a distributed SAN system could be simultaneously connectedto both single disk storage systems and disk array storage systems. Inaddition, a distributed SAN system can be constructed from hubs (whichconnect to the storage devices via loops), or a combination of hubs andswitches.

Referring to FIG. 3, the data path of data objects transferred betweenan applications server 15 and the disk storage 18 will be described. Asnoted above, data objects transferred in a SAN system are logical diskvolumes. When a data request is received at the disk storage 18 for anidentified logical disk volume, the disk storage 18 sends out the volumeover peripheral channel 20 into the SAN network 19. When the logicaldisk volume arrives at the applications server 15, the file manager 17handles the high-level object semantics necessary to supply therequested data to the software application 16.

A Network Attached Storage (NAS) system is connected to a front-endcommunications network just like a file server. Typically, thecommunications protocol is Ethernet, TCP/IP or FTP, but otherlesser-used protocols are not excluded. A NAS system does not rely upona complete operating system for its functionality. Instead, aslimmed-down micro-kernel targeted for file management is used.Traditional Local Area Network (LAN) protocols such as NFS (UNIX),SMB/CIFS (DOS/Windows) and NCP (NetWare) are examples of slimmed-downoperating systems used for file management on a NAS system. Devices in aNAS system typically attach to a LAN and allow sets of users to retrieveand share files that may span over multiple operating systemenvironments.

Referring to FIG. 4, a NAS system is illustrated. Several clients 21-22are connected to a hub 25. The hub 25 is connected to a NAS server 23.The NAS server 23 communicates with a disk array 24 to retrieve data forthe clients 21-22 or to store data for the clients 21-22. LAN channels26-28 realize connections between the NAS server 23, the hub 25 and theclients 21-22.

Referring to FIG. 5, the data path of data objects transferred between aclient 33 and the disk storage 32 will be described. Typically, a NASsystem exports higher level objects (i.e., files) to the LAN for use bythe client systems attached to the LAN. A request for a file stored onthe NAS server 30 is received from the NAS network 35. The file manager31 searches the disk storage 32 for the file, and if located, outputsthe file to the NAS network 35 over the LAN channel 36. When the filearrives at the client 33, the software application 34 is able tomanipulate the file.

An advantage of the NAS system is that adding or removing a NAS systemis like adding or removing any network node. In general, a SAN system(e.g., a channel-attached storage system) must be brought down in orderto reconfigure it. Another advantage of a NAS system is that applicationservers are not involved with management functions, such as volumemanagement, and can access the stored data as files. However, NASsystems are subject to the erratic behavior and overhead of the network.

SUMMARY OF THE INVENTION

The invention has been made in view of the above circumstances and toovercome the above problems and limitations of the prior art.

Additional aspects and advantages of the invention will be set forth inpart in the description that follows and in part will be obvious fromthe description, or may be learned by practice of the invention. Theaspects and advantages of the invention may be realized and attained bymeans of the instrumentalities and combinations particularly pointed outin the appended claims.

A first aspect of the present invention is a data storage devicecomprising a first port connected to a storage area network toapplications servers and client devices. The data storage device furthercomprises a storage medium having a first portion that stores files, asecond portion that stores logical disk volumes and a third portion thatstores pointers to the logical disk volumes.

A second aspect of the present invention is data storage devicecomprising first and second ports. The data storage device furtherincludes a storage medium connected to the first port and second port,and the storage medium has a first portion that stores files, a secondportion that stores logical disk volumes and a third portion that storespointers to the logical disk volumes.

A third aspect of the present invention is a computer network thatincludes a storage area network having applications servers, and anetwork attached storage system having client devices and file servers.The computer network also includes a storage device connected to thestorage area network and the network attached storage system. Thestorage device includes a storage medium having a first portion assignedto files for the client devices, a second portion assigned to logicaldisk volumes for the applications servers, and a third portion assignedto pointers to the logical disk volumes.

A fourth aspect of the present invention is a storage system responsiveto service requests from client devices of a network attached storagesystem and to applications servers of a storage area network. Thestorage system includes a first interface to the network attachedstorage system, a second interface to the storage area network and astorage medium. The storage medium comprises a first portion assigned tostore files for the clients of the network attached storage system, asecond portion assigned to store logical disk volumes for theapplications servers of the storage area network, and a third portionassigned to store pointers to the logical disk volumes.

A fifth aspect of the present invention is a data storage device thatincludes a first storage medium assigned to files for client devices ofa network attached storage system. The data storage device furthercomprises a second storage medium assigned to logical disk volumes forthe applications servers of a storage attached network, and a thirdstorage medium for pointers the logical disk volumes for theapplications servers of a storage attached network.

A sixth aspect of the present invention is a storage device including afirst interface for connecting to a network attached storage system anda second interface for connecting to a storage area network. The storagedevice further includes a storage medium having a first portion assignedto store files for the client devices of the network attached storagesystem, a second portion assigned to store logical disk volumes for theapplications servers of the storage area network and a third portionassigned to store pointers to the logical disk volumes. The storagedevice also includes a controller connected to the first and secondinterface for controlling read and write access to the storage medium.

A seventh aspect of the present invention is a data storage devicehaving a first port and storage means connected to the first port. Thestorage means includes a first portion that stores the files, a secondportion that stores the logical disk volumes and a third portion thatstores pointers to the logical disk volumes.

An eighth aspect of the present invention is a storage system responsiveto service requests from client means of a network attached storagesystem and to applications servers of a storage area network. Thestorage device has a first interface means and second means forconnecting to the networks. The storage device has storage means forstoring files and logical disk volumes, and storage means is partitionedinto a first portion assigned to store the files for the client means, asecond portion assigned to store the logical disk volumes for theapplications servers and a third portion assigned to store pointers tothe logical disk volumes.

A ninth aspect of the present invention is a storage device having afirst and second interface means for connecting to network attachedstorage systems and to storage area networks. The storage deviceincludes a storage means for storing files and logical disk volumes, andthe storage means is partitioned into a first portion assigned to storefiles for the client means, a second portion assigned to store logicaldisk volumes for the applications servers and a third portion assignedto store pointers to the logical disk volumes. The storage device alsoincludes a controller means connected to the first and second interfacefor controlling read and write access to the storage means.

A tenth aspect of the present invention is a method of storing data froma plurality of storage systems on a storage medium. The method comprisesstoring data for client devices of a network attached storage system ona first portion of the storage medium, storing data for applicationsservers of a storage area network on a second portion of the storagemedium, and storing pointers to data for applications servers on a thirdportion of the storage medium.

A eleventh aspect of the present invention is a computer system adaptedto storing data from a plurality of storage systems on a storage medium.The computer system comprises a processor and a memory comprisingsoftware instructions adapted to enable the computer system to storedata for client devices of a network attached storage system on a firstportion of the storage medium. The instructions are further adapted toenable the computer system to store data for applications servers of astorage area network on the second portion of a storage medium, and tostore pointers to data for applications servers on a third portion ofthe storage medium.

A twelfth aspect of the present invention is a computer program productfor storing data from a plurality of storage systems on a storagemedium. The computer program product comprises software instructions forenabling a computer system to perform predetermined operations, and acomputer readable medium bearing the software instructions. Thepredetermined operations comprise storing data for client devices of anetwork attached storage system on a first portion of the storagemedium, storing data for applications servers of a storage area networkon a second portion of the storage medium, and storing pointers to datafor applications servers on a third portion of the storage medium.

A thirteenth aspect of the present invention is a executable program fora computer system for storing data from a plurality of storage systemson a storage medium. The executable program comprises a first executablecode portion which, when executed on the computer system, stores datafor client devices of a network attached storage system on a firstportion of the storage medium. The executable program further comprisesa second executable code portion which, when executed on the computersystem, stores data for applications servers of a storage area networkon a second portion of the storage medium. The executable programfurther comprises a third executable code portion which, when executedon the computer system, stores pointers to data for applications serverson a third portion of the storage medium.

A fourteenth aspect of the present invention is a method for handlingdata requests from a plurality of data requestors to a storage device.The method comprises receiving the data request and determining if thedata request originates from an application server of a storage attachednetwork or a client device. If the data request originated from anapplication server and requests a volume, the method further comprisesdetermining if the requested volume is stored on the storage device, andretrieving the volume using a pointer to the volume. If the data requestoriginated from the client device and requests a file, the methodfurther comprises retrieving the requested file from the storage device.

A fifteenth aspect of the present invention is a method for handlingdata write requests from a plurality of data writers to a storagedevice. The method comprises receiving the data write request anddetermining if the data write request originates from an applicationserver of a storage attached network or a client device. If the datawrite request originated from an application server and requests towrite a volume to the storage device, the method further comprisesdetermining if the volume is already stored on the storage device,determining if the storage device has space for storing the volume,writing the volume to the storage device, and updating a pointer to thevolume. If the data write request originated from a client and requeststo write a file to the storage device, the method further compriseswriting the requested file to the storage device.

The above aspects and advantages of the invention will become apparentfrom the following detailed description and with reference to theaccompanying drawing figures.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate the invention and, together withthe written description, serve to explain the aspects, advantages andprinciples of the invention. In the drawings,

FIG. 1 illustrates a conventional centralized SAN system with severalservers and a disk array;

FIG. 2 illustrates a conventional distributed SAN system with severalservers and multiple disk arrays;

FIG. 3 illustrates how data objects are passed from disk storage to theapplication on a conventional SAN system;

FIG. 4 illustrates a conventional NAS system with several clients and aNAS server;

FIG. 5 illustrates how data objects are passed from disk storage to theapplication on a conventional NAS system;

FIG. 6 illustrates a computer network according to an aspect of theinvention, with an NAS server, client devices, a storage device andapplications servers attached to a LAN;

FIG. 7 illustrates a data storage device according to an aspect of theinvention;

FIG. 8 illustrates a SAN network with applications servers and a LANnetwork with a NAS server and client devices, with a storage deviceattached to both the SAN network and the LAN network;

FIG. 9 illustrates a data storage device according to another aspect ofthe invention;

FIG. 10 illustrates the partitioning of the storage medium for handlinglogical disk volumes and files, according to an aspect of the invention;

FIG. 11 illustrates the basic process flow for storing data from eitheran application server or a client device;

FIG. 12 illustrates the basic process flow for handling a data requestfrom either an application server or a client device; and

FIGS. 13A-13B illustrate the basic process flow for handling a datastorage request from either an application server or a client device.

DETAILED DESCRIPTION OF THE INVENTION

Prior to describing the aspects of the invention, some detailsconcerning the prior art will be provided to facilitate the reader'sunderstanding of the invention and to set forth the meaning of variousterms.

As used herein, the term “computer system” encompasses the widestpossible meaning and includes, but is not limited to, standaloneprocessors, networked processors, mainframe processors, and processorsin a client/server relationship. The term “computer system” is to beunderstood to include at least a memory and a processor. In general, thememory will store, at one time or another, at least portions ofexecutable program code, and the processor will execute one or more ofthe instructions included in that executable program code.

As used herein, the term “embedded computer system” includes, but is notlimited to, an embedded central processor and memory bearing object codeinstructions. Examples of embedded computer systems include, but are notlimited to, personal digital assistants, cellular phones and digitalcameras. In general, any device or appliance that uses a centralprocessor, no matter how primitive, to control its functions can belabeled has having an embedded computer system. The embedded centralprocessor will execute one or more of the object code instructions thatare stored on the memory. The embedded computer system can include cachememory, input/output devices and other peripherals.

As used herein, the terms “predetermined operations,” the term “computersystem software” and the term “executable code” mean substantially thesame thing for the purposes of this description. It is not necessary tothe practice of this invention that the memory and the processor bephysically located in the same place. That is to say, it is foreseenthat the processor and the memory might be in different physical piecesof equipment or even in geographically distinct locations.

As used herein, the terms “media,” “medium” or “computer-readable media”include, but is not limited to, a diskette, a tape, a compact disc, anintegrated circuit, a cartridge, a remote transmission via acommunications circuit, or any other similar medium useable bycomputers. For example, to distribute computer system software, thesupplier might provide a diskette or might transmit the instructions forperforming predetermined operations in some form via satellitetransmission, via a direct telephone link, or via the Internet.

Although computer system software might be “written on” a diskette,“stored in” an integrated circuit, or “carried over” a communicationscircuit, it will be appreciated that, for the purposes of thisdiscussion, the computer usable medium will be referred to as “bearing”the instructions for performing predetermined operations. Thus, the term“bearing” is intended to encompass the above and all equivalent ways inwhich instructions for performing predetermined operations areassociated with a computer usable medium.

Therefore, for the sake of simplicity, the term “program product” ishereafter used to refer to a computer-readable medium, as defined above,which bears instructions for performing predetermined operations in anyform.

As used herein, a “redundant array of independent disks” (RAID) is adisk subsystem that increases performance and/or provides faulttolerance. RAID is a set of two or more hard disks and a specializeddisk controller that contains the RAID functionality.

A detailed description of the aspects of the invention will now be givenreferring to the accompanying drawings.

As described earlier, in a SAN network, the applications servers areconnected to the mass storage devices through the SAN network. In a NASsystem, the client servers are connected to the storage devices on aLAN. It is not uncommon for both types of networks to comprise acomplete system. For example, the application servers a SAN system(which are connected to the SAN network) may be also connected to a LANin order to communicate amongst themselves. In another example, in a NASsystem, a separate SAN network may be connected behind the NAS server.In this architecture, the SAN network is used to connect several storagedevices to the NAS server (or sometimes more than one NAS server).

Referring to FIG. 6, a network incorporating the present invention isillustrated. The exemplary network comprises several applicationsservers 40-42, several client devices 43-44, a data storage device 45and a NAS server 46. A LAN network 47 interconnects all the components.The data storage device 45 comprises an access port 48 (not shown)connected to the NAS server 46. The data storage device 45 furthercomprises a storage medium 50 (not shown) that is connected to theaccess port 48, thereby allowing the applications servers 40-42 and theclient devices 43-44 access to the storage medium 50. The NAS server 46uses the storage device 45 with file types of accesses, as in a normalNAS system. The application servers 40-42 use the LAN network 47 toaccess the storage device 45 with volume types of accesses. The SANvolume partitions and pointers on the storage medium are used to supportthese accesses. Typically, the storage medium 50 is a hard disk or aRAID device, although other types of storage mediums (e.g., opticaldisks, tape storage, semiconductor memory) could be used as well.

The storage device 45 as shown in the network above will now bedescribed in more detail. Referring to FIG. 7, in order to access thedata stored on the storage medium 50, the data storage device 45 furthercomprises a controller 49 that accesses the storage medium according tocommands received from a client device through the access port 48. Thebus 51 handles the command and data traffic between the controller 49,the storage medium 50 and the access port 48. The controller 49 readsdata (e.g., files) from the storage medium 50 and writes data to thestorage medium 50 in accordance with commands received through thestorage area network 46 from a client device. In addition, thecontroller 49 accesses the storage medium according to commands receivedfrom an applications server through the access port 48. The controller49 reads a volume from the storage medium 50 or writes volume to thestorage medium 50 in accordance with commands received via the NASserver, and through the LAN (not shown in this Fig, but shown in FIG. 6)from an applications server. The data storage device 45 also comprises afile manager to manage the volumes and files stored on the storagemedium 50 (i.e, read files, write files, change attributes such asread/write access, etc.). As will be described below, the storage medium50 comprises a NAS file partition 57 assigned for storing files for theclients of the network attached storage system, a SAN volume partition58 assigned for storing volumes for the applications servers of thestorage area network, and a SAN pointer partition 59 assigned forstoring pointers to the volumes.

Referring to FIG. 8, another network incorporating the present inventionis illustrated. The exemplary network comprises several applicationsservers 40-42, several client devices 43-44, a data storage device 60and a NAS server 46. A LAN network 47 interconnects the client devices43-44 and the NAS server 46. A SAN network 56 interconnects theapplications servers 40-42. The data storage device 60 comprises accessports 54,55 (not shown) connected to the LAN network 47 and the SANnetwork 56, respectively. The data storage device 60 further comprises astorage medium 50 that is connected to the access ports 54,55, therebyallowing the applications servers 40-42 and the client devices 43-44access to the storage medium 50. Typically, the storage medium 50 is ahard disk or a RAID device, although other types of storage mediums(e.g., optical disks, tape storage, semiconductor memory) could be usedas well.

The storage device 60 as shown in the network above will now bedescribed in more detail. Referring to FIG. 9, the data storage device60 is connected to the clients of a network attached storage system (notshown) and to the applications servers of a storage area network (notshown). The data storage device 60 further comprises a NAS access port54 to interface with the network attached storage system, and a SANaccess port 55 to interface with the storage area network. As will bedescribed below, the storage medium 50 comprises a NAS file partition 57assigned for storing files for the clients of the network attachedstorage system, a SAN volume partition 58 assigned for storing volumesfor the applications servers of the storage area network, and a SANpointer partition 59 assigned for storing pointers to the volumes.

The data storage device 60 also comprises a controller 49 to processdata requests from the clients of the network attached storage systemand the applications servers of the storage area network. The controller49 stores a file to or retrieves a file from the NAS file partition 57of the storage medium 50 in response to a command from a client device.In addition, the controller 49 stores a volume to or retrieves a volumefrom the SAN volume partition 58 of the storage medium 50 in response toa command from an applications server. The controller 49 also updatesthe SAN pointer partition 59 of the storage medium 50 in response to acommand from an applications server to retrieve or store a volume on thestorage medium 50. The NAS bus 52 handles the command and data trafficbetween the controller 49, the storage medium 50 and the NAS access port54. The SAN bus 53 handles the command and data traffic between thecontroller 49, the storage medium 50 and the SAN access port 55.

Referring to FIG. 10, the storage medium 50 comprises NAS file partition57 that is assigned to store files for the client devices 43-44. Thestorage medium 50 also comprises a SAN volume partition 58 that isassigned to store volumes for the applications servers 40-42. As shownin FIG. 10, multiple volumes 58 a-58 n are stored in the SAN volumepartition 58. These volumes 58 a-58 n are forwarded to the applicationsservers 40-42 when requested. The storage medium 50 further comprises aSAN pointer partition 59 assigned to store pointers for the volumes 58a-58 n for the applications servers 40-42. In a multiple storage mediumenvironment, partitioning as illustrated in FIG. 10 is duplicated oneach storage medium in the multiple storage medium environment. Forexample, if you have eight hard disk drives, each hard disk drive willhave a dedicated NAS file partition 57, a SAN volume partition 58 and aSAN pointer partition 59.

The storage medium 50 is a hard disk or a RAID device, although othertypes of storage mediums (e.g., optical disks, semiconductor memory,tape storage) could be used as well. If a plurality of hard disks areused as the storage medium, the NAS file partition 57 can simply beassigned to one or more of the disks comprising the plurality of diskdrives. Likewise, the SAN volume partition 58 and the SAN pointerpartition 59 can be assigned to one or more of the disk drivescomprising the plurality of disk drives.

Referring to FIG. 11, another aspect of the invention will now bedescribed. Since the present invention stores data that is assigned toboth client devices of a network attached storage system and theapplication servers of a storage area network, the data storage devicemust sort through the different types of data and store them in theirproper partitions. At S100, a determination is made of what type of datamanagement request is being made (i.e., store data, retrieve data,change attributes, etc.) and from which type of network the datamanagement request originates. Based on that determination, at S110, ifthe data management request originated from a NAS client device, than atS120, the data storage device 50 performs the requested data managementfunction on the NAS file partition 57. If the data management requestwas not from a NAS client, the method shifts to S130.

At S130, if the data management request was from an applications serverof the storage area network, at S140, the data storage device 50performs the requested data management function on the SAN volumepartition 58. Once the requested data management function is complete,at S150, the data storage device 50 updates the SAN pointer partition 59to reflect any changes made to the SAN volume partition 58. At S160, ifthe data management request unidentifiable, an error message is output.

Another embodiment of the present invention described above is acomputer system that is adapted to storing data from a plurality ofstorage systems on a storage medium. The computer system comprises aprocessor and a memory that comprises software instructions adapted toenable the computer system to perform various functions. Aside from thefunctions that are associated with an operating system, the memorycomprises software instructions adapted to store data for client devicesof a network attached storage system on a first portion of the storagemedium. This first portion of the storage medium would be the NAS filepartition 57 on a storage medium 50 in a storage device 45. The softwareinstructions on the memory are also adapted to store data forapplications servers of a storage area network on a second portion of astorage medium. This second portion of the storage medium would be theSAN volume partition 58 on a storage medium 50 in a storage device 45.The software instructions on the memory are also adapted to storepointers to data for applications servers on a third portion of astorage medium. This third portion of the storage medium would be theSAN pointer partition 59 on a storage medium 50 in a storage device 45.

To execute the functions described above with respect to storing data onthe storage medium, the software instructions are further adapted toenable the computer system to read or write data from the first portionof the storage medium in response to a command from a client device.Again, this first portion of the storage medium would be the NAS filepartition 57 on a storage medium 50 in a storage device 45. The softwareinstructions are also adapted to enable the computer system to read orwrite data from the second portion of the storage medium in response toa command from an applications server. Again, this second portion of thestorage medium would be the SAN volume partition 58 on a storage medium50 in a storage device 45. In addition, the software instructions arefurther adapted to enable the computer system to update pointers storedon die third portion of the storage medium in response to a command froman applications server to read or write data from the second portion ofthe storage medium. Again, this third portion of the storage mediumwould be the SAN pointer partition 59 on a storage medium 50 in astorage device 45.

Another embodiment of the present invention described above is acomputer program product for storing data from a plurality of storagesystems on a storage medium. The computer program product comprisessoftware instructions for enabling a computer system to performpredetermined operations, and a computer readable medium bearing thesoftware instructions. The computer readable medium can be any one ofthe mediums described above. The predetermined operations comprisesoftware instructions adapted to store data for client devices of anetwork attached storage system on a first portion of the storagemedium. This first portion of the storage medium would be the NAS filepartition 57 on a storage medium 50 in a storage device 45. Thepredetermined operations further comprise software instructions adaptedto store data for applications servers of a storage area network on asecond portion of a storage medium. This second portion of the storagemedium would be the SAN volume partition 58 on a storage medium 50 in astorage device 45. The predetermined operations further comprisesoftware instructions adapted to store pointers to data for applicationsservers on a third portion of a storage medium. This third portion ofthe storage medium would be the SAN pointer partition 59 on a storagemedium 50 in a storage device 45.

To execute the functions described above with respect to storing data onthe storage medium, the predetermined operations are softwareinstructions further adapted to enable the computer system to read orwrite data from the first portion of the storage medium in response to acommand from a client device. Again, this first portion of the storagemedium would be the NAS file partition 57 on a storage medium 50 in astorage device 45. The predetermined operations are softwareinstructions further adapted to enable the computer system to read orwrite data from the second portion of the storage medium in response toa command from an applications server. Again, this second portion of thestorage medium would be the SAN volume partition 58 on a storage medium50 in a storage device 45. In addition, the predetermined operations aresoftware instructions further adapted to enable the computer system toupdate pointers stored on the third portion of the storage medium inresponse to a command from an applications server to read or write datafrom the second portion of the storage medium. Again, this third portionof the storage medium would be the SAN pointer partition 59 on a storagemedium 50 in a storage device 45.

Another embodiment of the present invention described above is anexecutable program for a computer system for storing data from aplurality of storage systems on a storage medium. The executable programcomprises a first executable code portion which, when executed on thecomputer system, stores data for client devices of a network attachedstorage system on a first portion of the storage medium. This firstportion of the storage medium would be the NAS file partition 57 on astorage medium 50 in a storage device 45. The executable programcomprises a second executable code portion which, when executed on thecomputer system, stores data for applications servers of a storage areanetwork on a second portion of a storage medium. This second portion ofthe storage medium would be the SAN volume partition 58 on a storagemedium 50 in a storage device 45. The executable program comprises athird executable code portion which, when executed on the computersystem, stores pointers to data for applications servers on a thirdportion of a storage medium. This third portion of the storage mediumwould be the SAN pointer partition 59 on a storage medium 50 in astorage device 45.

Referring to FIG. 12, another aspect of the invention is illustrated.The present invention must handle data requests from a plurality of datarequesters, and provides a method for handling such data requests. AtS200, a request for data retrieval is received at the data storagedevice. At S210, a determination is made whether the request for dataretrieval originated from a NAS client device or a SAN applicationsserver. At S220, if the request for data retrieval originated from a NASclient device, the method shifts to S230, where a file manager is usedto process the request for data retrieval. If the request for dataretrieval did not originate from a NAS client device, the method shiftsto S240.

At S240, if the request for data retrieval originated from a SANapplications server, the method shifts to S260, where the pointer listis reviewed to determine if the requested logical disk volume is presenton the data storage device. If the request for data retrieval did notoriginate from a SAN applications server, the method shifts to S250 andan error message is output.

At S260, if the requested logical volume is present, the method shiftsto S280, where the request for data retrieval is processed. If therequested logical volume is not present, the method shifts to S290,where the requestor is notified that the requested logical disk volumeis unavailable.

Referring to FIGS. 13A-13B, another aspect of the invention isillustrated. The present invention must handle data writing requestsfrom a plurality of data writers, and provides a method for handlingsuch data writing requests. At S300, a request for data storage isreceived at the data storage device. At S310, a determination is madewhether the request for data storage originated from a NAS client deviceor a SAN applications server. At S320, if the request for data storageoriginated from a NAS client device, the method shifts to S330, where afile manager is used to process the request for data storage. If therequest for data storage did not originate from a NAS client device, themethod shifts to S340.

At S340, if the request for data storage originated from a SANapplications server, the method shifts to S350, where the size of thelogical disk volume to be stored is determined. If the request for datastorage did not originate from a SAN applications server, the methodshifts to S430 and an error message is output.

At S360, if there is insufficient disk space to store the logical diskvolume, at S370, the data storage requestor is notified that the datastorage device lacks sufficient storage space. If there is sufficientstorage space on the data storage device, at S380, a determination ismade whether the logical disk volume is replacing a logical disk volumethat is currently mounted on the data storage device. At S390, if acurrently mounted logical disk volume is to be replaced, the methodshifts to S400, where the new logical disk volume replaces the currentlymounted logical disk volume. Subsequent to the replacement, as S440, thepointers to the logical disk volumes stored on the data storage deviceare updated. If the new logical volume does not replace a currentlymounted logical volume, the method shifts to S410.

At S410, a determination is made whether the new logical volume is to bestored on the data storage device. At S420, if the new logical volume isto be stored, the method shifts to S430 wherein the new logical volumeis stored on the data storage device. At S440, the pointers to thelogical disk volumes stored on the data storage device are updated.

The foregoing description of the aspects of the invention has beenpresented for purposes of illustration and description. It is notintended to be exhaustive or to limit the invention to the precise formdisclosed, and modifications and variations are possible in light of theabove teachings or may be acquired from practice of the invention. Theprinciples of the invention and its practical application were describedin order to explain the to enable one skilled in the art to utilize theinvention in various embodiments and with various modifications as aresuited to the particular use contemplated.

Thus, while only certain aspects of the invention have been specificallydescribed herein, it will be apparent that numerous modifications may bemade thereto without departing from the spirit and scope of theinvention. Further, acronyms are used merely to enhance the readabilityof the specification and claims. It should be noted that these acronymsare not intended to lessen the generality of the terms used and theyshould not be construed to restrict the scope of the claims to theembodiments described therein.

1. A data storage device, comprising: a first port; and a storage mediumconnected to the first port, comprising: a first portion that storesfiles; a second portion that stores logical disk volumes; and a thirdportion that stores pointers to the logical disk volumes.
 2. The datastorage device as claimed in claim 1, wherein the storage mediumcomprises a hard disk.
 3. The data storage device as claimed in claim 1,wherein the storage medium comprises a redundant array of independentdisks.
 4. The data storage device as claimed in claim 1, furthercomprising a file manager that manages the logical disk volumes andfiles stored on the storage medium.
 5. The data storage device asclaimed in claim 1, further comprising a controller that controls readand write accesses to the storage medium.
 6. The data storage device asclaimed in claim 5, wherein the storage device is attached to a networkthat includes at least one client device, and wherein the controllerreads data from the storage medium or writes data to the storage mediumaccording to a command received from at least one client device.
 7. Thedata storage device as claimed in claim 5, wherein the storage device isattached to a network that includes at least one applications server,and wherein the controller reads data from the storage medium or writesdata to the storage medium according to a command received from the atleast one applications server.
 8. A data storage device, comprising: afirst port; a second port; and a storage medium connected to the firstport and second port, comprising: a first portion that stores files; asecond portion that stores logical disk volumes; and a third portionthat stores pointers to the logical disk volumes.
 9. The data storagedevice as claimed in claim 8, wherein the storage medium comprises ahard disk.
 10. The data storage device as claimed in claim 8, whereinthe storage medium comprises a redundant array of independent disks. 11.The data storage device as claimed in claim 8, further comprising a filemanager that manages the logical disk volumes and files stored on thestorage medium.
 12. The data storage device as claimed in claim 8,further comprising a controller that controls read and write accesses tothe storage medium.
 13. The data storage device as claimed in claim 12,wherein the storage device is attached to a network that includes atleast one client device through the first port, and wherein thecontroller reads data from the storage medium or writes data to thestorage medium according to a command received from at least one clientdevice.
 14. The data storage device as claimed in claim 12, wherein thestorage device is attached to a network that includes at least oneapplications server through the second port, and wherein the controllerreads data from the storage medium or writes data to the storage mediumaccording to a command received from the at least one applicationsserver.
 15. A computer network, comprising: a storage area networkcomprising at least one applications server; a network attached storagesystem comprising: at least one client device; and at least one fileserver; and a storage device connected to the storage area network andthe network attached storage system, the storage device comprising astorage medium having a first portion assigned to files for the at leastone client device, a second portion assigned to logical disk volumes forthe at least one applications server, and a third portion assigned topointers to the logical disk volumes.
 16. A storage system responsive toservice requests from client devices of a network attached storagesystem and to applications servers of a storage area network, thestorage system comprising: a first interface to the network attachedstorage system; a second interface to the storage area network; and astorage medium comprising: a first portion assigned to store files forthe client devices of the network attached storage system; a secondportion assigned to store logical disk volumes for the applicationsservers of the storage area network; and a third portion assigned tostore pointers to the logical disk volumes.
 17. The storage system asclaimed in claim 16, wherein the storage medium comprises a plurality ofdisk drives.
 18. The storage system as claimed in claim 17, wherein thefirst portion is a selected disk drive from the plurality of diskdrives.
 19. The storage system as claimed in claim 17, wherein thesecond portion is a selected disk drive from the plurality of diskdrives.
 20. The storage system as claimed in claim 17, wherein the thirdportion is a selected disk drive from the plurality of disk drives. 21.The storage system as claimed in claim 16, further comprising acontroller that processes data requests from the client devices of thenetwork attached storage system and the applications servers of thestorage area network.
 22. The storage system as claimed in claim 21,wherein the controller stores a file to or retrieves a file from thefirst portion of the storage medium in response to a command from aclient device.
 23. The storage system as claimed in claim 21, whereinthe controller stores a logical disk volume to or retrieves a logicaldisk volume from the second portion of the storage medium in response toa command from an applications server.
 24. The storage system as claimedin claim 23, wherein the controller updates the third portion of thestorage medium in response to a command from an applications server toretrieve or store a logical disk volume.
 25. A data storage device,comprising: a first storage medium assigned to files for client devicesof a network attached storage system; a second storage medium assignedto logical disk volumes for applications servers of a storage attachednetwork; and a third storage medium for pointers the logical diskvolumes for the applications servers of the storage attached network.26. The data storage device as claimed in claim 25, wherein the first,second and third storage mediums comprise at least one disk drive. 27.The data storage device as claimed in claim 25, wherein the at least onedisk drive comprises a plurality of disk drives.
 28. A storage device,the storage device comprising: a first interface for connecting to anetwork attached storage system; a second interface for connecting to astorage area network; a storage medium comprising: a first portionassigned to store files for the client devices of the network attachedstorage system; a second portion assigned to store logical disk volumesfor the applications servers of the storage area network; and a thirdportion assigned to store pointers to the logical disk volumes; and acontroller connected to the first and second interface, wherein thecontroller manages read and write access to the storage medium.
 29. Adata storage device, comprising: a first port; and a storage meansconnected to the first port for storing files and logical disk volumes,the storage means comprising: a first portion that stores the files; asecond portion that stores the logical disk volumes; and a third portionthat stores pointers to the logical disk volumes.
 30. The data storagedevice as claimed in claim 29, wherein the storage means comprises ahard disk.
 31. The data storage device as claimed in claim 29, whereinthe storage means comprises a redundant array of independent disks. 32.The data storage device as claimed in claim 29, further comprising filemanager means for managing the logical disk volumes and files stored onthe storage means.
 33. The data storage device as claimed in claim 29,further comprising a controller means for controlling read and writeaccesses to the storage means.
 34. The data storage device as claimed inclaim 33, wherein the storage means is attached to a network thatincludes at least one client means, and wherein the controller meansreads data from the storage means or writes data to the storage meansaccording to a command received from at least one client means.
 35. Thedata storage device as claimed in claim 33, wherein the storage deviceis attached to a network that includes at least one applications server,and wherein the controller means reads data from the storage means orwrites data to the storage means according to a command received fromthe at least one applications server.
 36. A storage system responsive toservice requests from client means of a network attached storage systemand to applications servers of a storage area network, the storagesystem comprising: a first interface means for connecting to the networkattached storage system; a second interface means for connecting to thestorage area network; and a storage means for storing files and logicaldisk volumes, the storage means comprising: a first portion assigned tostore the files for the client means of the network attached storagesystem; a second portion assigned to store the logical disk volumes forthe applications servers of the storage area network; and a thirdportion assigned to store pointers to the logical disk volumes.
 37. Thestorage system as claimed in claim 36, further comprising controllermeans for processing data requests from the client means of the networkattached storage system and the applications servers of the storage areanetwork.
 38. A storage device, the storage device comprising: a firstinterface means for connecting to a network attached storage system; asecond interface means for connecting to a storage area network; astorage means for storing files and logical disk volumes, the storagemeans comprising: a first portion assigned to store files for the clientmeans of the network attached storage system; a second portion assignedto store logical disk volumes for the applications servers of thestorage area network; and a third portion assigned to store pointers tothe logical disk volumes; and a controller means connected to the firstand second interface for controlling read and write access to thestorage means.
 39. A method of storing data from a plurality of storagesystems on a storage medium, the method comprising: storing data forclient devices of a network attached storage system on a first portionof the storage medium; storing data for applications servers of astorage area network on a second portion of the storage medium; andstoring pointers to data for applications servers on a third portion ofthe storage medium.
 40. The method of storing data as claimed in claim39, the method further comprising the reading or writing of data fromthe first portion of the storage medium in response to a command from aclient device.
 41. The method of storing data as claimed in claim 39,the method further comprising the reading or writing of data from thesecond portion of the storage medium in response to a command from anapplications server.
 42. The method of storing data as claimed in claim39, the method further comprising updating pointers stored on the thirdportion of the storage medium in response to a command from anapplications server to read or write data from the second portion of thestorage medium.
 43. A computer system adapted to storing data from aplurality of storage systems on a storage medium, the computer systemcomprising: a processor; a memory comprising software instructionsadapted to enable the computer system to perform the steps of: storingdata for client devices of a network attached storage system on a firstportion of the storage medium; storing data for applications servers ofa storage area network on a second portion of the storage medium; andstoring pointers to data for applications servers on a third portion ofthe storage medium.
 44. The computer system adapted to storing data froma plurality of storage systems on a storage medium as claimed in claim43, wherein the software instructions are further adapted to enable thecomputer system to read or write data from the first portion of thestorage medium in response to a command from a client device.
 45. Thecomputer system adapted to storing data from a plurality of storagesystems on a storage medium as claimed in claim 43, wherein the softwareinstructions are further adapted to enable the computer system to reador write data from the second portion of the storage medium in responseto a command from an applications server.
 46. The computer systemadapted to storing data from a plurality of storage systems on a storagemedium as claimed in claim 43, wherein the software instructions arefurther adapted to enable the computer system to update pointers storedon the third portion of the storage medium in response to a command froman applications server to read or write data from the second portion ofthe storage medium.
 47. A computer program product for storing data froma plurality of storage systems on a storage medium, the computer programproduct comprising: software instructions for enabling a computer systemto perform predetermined operations, and a computer readable mediumbearing the software instructions; the predetermined operationscomprising: storing data for client devices of a network attachedstorage system on a first portion of the storage medium; storing datafor applications servers of a storage area network on a second portionof the storage medium; and storing pointers to data for applicationsservers on a third portion of the storage medium.
 48. An executableprogram for a computer system for storing data from a plurality ofstorage systems on a storage medium, the executable program comprising:a first executable code portion which, when executed on a computersystem, stores data for client devices of a network attached storagesystem on a first portion of the storage medium; a second executablecode portion which, when executed on a computer system, stores data forapplications servers of a storage area network on a second portion ofthe storage medium; and a third executable code portion which, whenexecuted on a computer system, stores pointers to data for applicationsservers on a third portion of the storage medium.
 49. A method forhandling data requests from a plurality of data requesters to a storagedevice, the method comprising: receiving the data request; determiningif the data request originates from an application server of a storageattached network or a client device; if the data request originated froman application server and requests a logical disk volume, the methodfurther comprises: determining if the requested logical disk volume isstored on the storage device; and retrieving the logical disk volumeusing a pointer to the logical disk volume; and if the data requestoriginated from the client device and requests a file, the methodfurther comprises retrieving the requested file from the storage device.50. A method for handling data write requests from a plurality of datawriters to a storage device, the method comprising: receiving the datawrite request; determining if the data write request originates from anapplication server of a storage attached network or a client device; ifthe data write request originated from an application server andrequests to write a logical disk volume to the storage device, themethod further comprises: determining if the logical disk volume isalready stored on the storage device; determining if the storage devicehas space for storing the logical disk volume; writing the logical diskvolume to the storage device; and updating a pointer to the logical diskvolume; and if the data write request originated from a client andrequests to write a file to the storage device, the method furthercomprises writing the requested file to the storage device.